.TITLE SYSCM .IDENT /19.10/ ; ; Copyright (c) 1995-1999 by Mentec, Inc., U.S.A. ; All rights reserved. ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED ; OR COPIED ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE. ; ; D. N. CUTLER 11-AUG-73 ; ; MODIFIED FOR RSX-11M-PLUS VERSION 2.1 BY: ; ; P. J. BEZEREDI ; J. R. KAUFFMAN ; J. M. LAWLER ; T. LEKAS ; T. M. MARTIN ; ; MODIFIED FOR RSX-11M-PLUS VERSION 3.0 BY: ; ; ; J. R. KAUFFMAN ; L. B. MCCULLEY ; K. L. NOEL ; B. S. MCCARTHY ; ; MODIFIED FOR RSX-11M-PLUS VERSION 4.0 BY: ; ; K. L. NOEL ; J. W. BERZLE ; ; MODIFIED FOR RSX-11M-PLUS VERSION 4.2 BY: ; ; L. KOGAN ; K. L. NOEL ; ; MODIFIED FOR RSX-11M-PLUS VERSION 4.4 BY: ; ; B. S. MCCARTHY ; D. Carroll ; ; MODIFIED FOR RSX-11M-PLUS V4.5 BY: ; ; D. Carroll ; ; MODIFIED FOR RSX-11M-PLUS V4.6 BY: ; ; D. Carroll 19-Oct-1995 19.00 ; DC406 - Include $UTUIC for use by install ; ; D. Carroll 08-Jan-1996 19.10 ; DC430 - Include support for 32-bit LBNs ; (Happy birthday, Ann!) ; ; D. Carroll 06-Feb-1998 19.20 ; DC492 - Include support for four digit date display, ; or ISO 8601 format dates. ; ; ; SYSTEM COMMON DATA AREA ; ; MACRO LIBRARY CALLS ; .MCALL HDRDF$,HWDDF$,TCBDF$ .MCALL EPKDF$ ;ERRLOG PACKET/MASK DEFINITIONS HDRDF$ ;DEFINE TASK HEADER OFFSETS HWDDF$ ;DEFINE HARDWARE REGISTERS TCBDF$ ;DEFINE TASK CONTROL BLOCK OFFSETS EPKDF$ ;DEFINE FEATURE MASK FLAGS .IF DF A$$CNT .MCALL ACNDF$ ACNDF$ ;DEFINE OFFSETS FOR ACCOUNTING BLOCKS .ENDC ; ; MAKE CLOCK PARAMETERS GLOBAL ; S$$RTZ==H$$RTZ ;LINE FREQUENCY S$$IEN==K$$IEN ;ENABLE BITS PATTERN S$$LDC==K$$LDC ;LOAD VALUE FOR COUNT REGISTER S$$TPS==K$$TPS ;TICKS PER SECOND ON P CLOCK ; ; LOCAL SYMBOL DEFINITIONS ; ; FUNCTION MASK LITERAL ; FMASK= FE.EXV!FE.DRV!FE.CAL!FE.EXP!FE.FDT ;INITIALIZE FEATURE MASK FMASK= FMASK!FE.DYM .IF DF M$$EXT&M$$MGE FMASK= FMASK!FE.EXT ;INCLUDE EXTENDED MEMORY MASK .ENDC .IF DF M$$MUP FMASK= FMASK!FE.MUP ;INCLUDE MULTI-USER PROTECTION MASK .ENDC .IF DF P$$LAS FMASK= FMASK!FE.PLA ;PLAS SUPPORT .ENDC .IF DF Q$$OPT FMASK= FMASK!FE.PKT ;QIO PACKET PREALLOCATION .ENDC .IF DF P$$OFF FMASK= FMASK!FE.OFF ;PARENT OFFSPRING TASKING SUPPORT .ENDC F2MASK=0 ;INITIALIZE SECOND MASK WORD CONTENTS .IF DF K$$DAS F2MASK=F2MASK!F2.DAS ;KERNEL DATA SPACE SUPPORT .ENDC .IF DF S$$LIB F2MASK=F2MASK!F2.LIB ;SUPERVISOR MODE LIBRARY SUPPORT .ENDC .IF DF M$$PRO F2MASK=F2MASK!F2.MP ;MULTIPROCESSOR SUPPORT .ENDC .IF DF E$$VNT F2MASK=F2MASK!F2.EVT ;EVENT TRACE FACILITY SUPPORT .ENDC .IF DF A$$CNT F2MASK=F2MASK!F2.ACN ;CPU ACCOUNTING SUPPORT .ENDC .IF DF S$$HDW F2MASK=F2MASK!F2.SDW ;SHADOW RECORDING SUPPORT .ENDC .IF DF P$$OOL F2MASK=F2MASK!F2.POL ;SECONDARY POOL SUPPORT .ENDC .IF DF D$$PAR F2MASK=F2MASK!F2.DPR ;SYSTEM SUPPORTS A DIRECTIVE PARTITION .ENDC .IF DF P$$WND F2MASK=F2MASK!F2.WND ;SYSTEM SUPPORTS SECONDARY POOL WINDOWS .ENDC ; DEFINE CONSTANT FEATURE MASK 2 BITS F2MASK=F2MASK!F2.IRR!F2.GGF!F2.RAS!F2.RBN!F2.SWP!F2.STP ; FEATURE MASK 3 BITS ; DEFINE CONSTANT FEATURE MASK 3 BITS F3MASK=F3.AST!F3.EIS!F3.RLK!F3.STM F3MASK=F3MASK!F3.SHF .IF DF A$$CLI F3MASK=F3MASK!F3.CLI .ENDC .IF DF X$$HDR F3MASK=F3MASK!F3.XHR ;EXTERNAL HEADER SUPPORT .ENDC .IF DF U$$DAS F3MASK=F3MASK!F3.UDS ;USER DATA SPACE SUPPORT .ENDC .IF DF P$$OOL F3MASK=F3MASK!F3.PRO ;SEC POOL PROTO TCB SUPPORT .ENDC .IF DF T$$COM F3MASK=F3MASK!F3.TCM ;TTDRV HAS SEPARATE BUFFER POOL .ENDC .IF DF P$$CTL F3MASK=F3MASK!F3.PMN ;POOL MONITORING SUPPORT .ENDC .IF DF A$$SEC F3MASK=F3MASK!F3.SEC ; EXTENDED SECURITY OPTION .ENDC ; FEATURE MASK 4 BITS ; DEFINE MASK (NO CONSTANT BITS) F4MASK=0 .IF DF R$$PRO F4MASK=F4MASK!F4.XT ;THIS IS A CT SYSTEM .ENDC ;R$$PRO .IF DF E$$LOG F4MASK=F4MASK!F4.ERL ;ERROR LOGGING SUPPORT .ENDC .IF DF P$$RTY F4MASK=F4MASK!F4.PTY ;PARITY MEMORY SUPPORT .ENDC .IF DF, F$$DVN F4MASK=F4MASK!F4.DVN ;DECIMAL VERSION NUMBERS .ENDC ; DF F$$DVN .IF DF C$$CDA .IF EQ, C$$CDA F4MASK=F4MASK!F4.LCD ;LOADABLE CRASH DUMP SUPPORT .ENDC ; EQ C$$CDA .ENDC .IF DF F$$NIM F4MASK=F4MASK!F4.NIM ;DELETED FIXED TASK IMAGES .ENDC .IF DF D$$CHE F4MASK=F4MASK!F4.CHE ;DISK DATA CACHING .ENDC .IF DF L$$GCL F4MASK=F4MASK!F4.LOG ;LOGICAL NAME SUPPORT .ENDC .IF DF N$$DIR F4MASK=F4MASK!F4.NAM ;NAMED DIRECTORY SUPPORT .ENDC ;DF N$$DIR .IF DF P$$LAS&X$$HDR&F$$MAP F4MASK=F4MASK!F4.FMP ;FAST MAP SUPPORT .ENDC ; DF P$$LAS&X$$HDR&F$$MAP .IF DF D$$DCL F4MASK=F4MASK!F4.DCL ;DCL IS DEFAULT CLI .ENDC ;DF D$$DCL .IF DF D$$DDS F4MASK=F4MASK!F4.DDS ;DDS IS DEFAULT (NAMED MODE) .ENDC ;DF D$$DDS .IF DF T$$ACD F4MASK=F4MASK!F4.ACD ;SYSTEM SUPPORTS ACD'S .ENDC ;DF T$$ACD .IF DF T$$TSA F4MASK=F4MASK!F4.NCT ;SYSTEM HAS NCT SUPPORT .ENDC ;DF T$$TSA ; DEFINE MASK (NO CONSTANT FEATURES) F5MASK=F5.VTL ;INIT TO VTLOGONS DISABLED ; Remote services feature mask ; If HF.RMT is set as SAV brings the system up, the mask in $FMSKR will ; replace the bits defined by $FMSKM ; This scheme allows the system to be SAVed on a processor that does not ; require host services and then run on a processor like the KXJ11 which does FMASKR=0 .IF DF P$$3XX F5MASK=F5MASK!F5.PRO ;SYSTEM SUPPORTS PROFESSIONAL 3XX ;SERIES PERSONAL COMPUTERS .ENDC ; DF P$$3XX .IF DF C$$DFB F5MASK=F5MASK!F5.DFB ; SYSTEM SUPPORTS DEFERRED BINDING .ENDC ; DF C$$DFB .IF DF C$$ODB F5MASK=F5MASK!F5.ODB ; CAN OVERRIDE DEFERRED BINDING .ENDC ; DF C$$ODB .IF DF C$$RTB F5MASK=F5MASK!F5.RTB ; SYSTEM SUPPORTS RUN TIME BINDING .ENDC ; DF C$$RTB .IF DF C$$RTK FMASKR=FMASKR!F5.RTK ; SYSTEM SUPPORTS REMOTE TASK INSTALLS .ENDC ; DF C$$RTK .IF DF C$$NSY FMASKR=FMASKR!F5.NSY ; SYSTEM SUPPORTS NO LOCAL SYSTEM DISK .ENDC ; DF C$$NSY .IF DF C$$NCO FMASKR=FMASKR!F5.NCO ; SYSTEM SUPPORTS NO CONSOLE .ENDC ; DF C$$NCO .IF DF C$$XDJ FMASKR=FMASKR!F5.XDJ ; SYSTEM SUPPORTS KXJ XDT .ENDC ; DF C$$XDJ .IF DF C$$RDR FMASKR=FMASKR!F5.RDR ; SYSTEM SUPPORTS REMOTE DIRECTORY DEFAULTS .ENDC ; DF C$$RDR .IF DF C$$RLG FMASKR=FMASKR!F5.RLG ; SYSTEM SUPPORTS REMOTE LOGICALS .ENDC ; DF C$$RLG .IF DF C$$LDR FMASKR=FMASKR!F5.LDR ; SYSTEM SUPPORTS REMOTE LOADER/OVERLAYS .ENDC ; DF C$$LDR .IF NDF C$$RMT ; IF NO REMOTE HOST SUPPORT F5MASK=F5MASK!FMASKR ; SET $FMASK5 TO BE BOTH .ENDC ; C$$RMT ; DEFINE FEATURE MASK 6 (NO CONSTANT FEATURES) F6MASK=0 ;NO CONSTANT FEATURES .IF DF S$$HLS F6MASK = F6MASK!F6.SLS ; IS SHADOW LOAD SHARING SUPPORTED .ENDC ;DF S$$HLS .IF DF U$$BME F6MASK = F6MASK!F6.UBM ; SYSTEM SUPPORTS UNIBUS MEMORY OPTIONS .ENDC ;DF U$$BME .IF DF I$$CBP .IF NDF M$$PRO F6MASK = F6MASK!F6.ICP ; SYSTEM SUPPORTS USING ICB POOL FOR PRIMARY .ENDC ;NDF M$$PRO .ENDC ;DF I$$CBP .IF DF E$$BUS F6MASK = F6MASK!F6.SWB ; SYSTEM SUPPORTS SWITCHED BUSSES (DT07/MIRA) .ENDC ;DF E$$BUS .IF DF A$$CKP F6MASK = F6MASK!F6.ACK ; SYSTEM SUPPORTS ALTERNATE CHECKPOINT ROUTINE .ENDC ;DF A$$CKP .IF DF E$$LBN ;DC430 ;DC430 F6MASK = F6MASK!F6.32B ; SYSTEM SUPPORTS DEVICES WITH 32BIT LBNS ;DC430 ;DC430 .ENDC ;DF E$$LBN ;DC430 ;DC430 .IF DF Y$$ISO ;DC492 ;DC492 F6MASK = F6MASK!F6.ISO!F6.Y2K ; SYSTEM DISPLAYS ISO FORMAT DATES ;DC492 ;DC492 .ENDC ;DF Y$$ISO ;DC492 ;DC492 .IF DF Y$$2KD ;DC492 ;DC492 F6MASK = F6MASK!F6.Y2K ; SYSTEM SUPPORT 4 DIGIT YEAR DISPLAY ;DC492 ;DC492 .ENDC ;DF Y$$2KD ;DC492 ;**-1 ; ; NULL TASK CONTROL BLOCK ; ; THIS TCB TERMINATES THE SYSTEM AND ACTIVE TASK LISTS. IT MUST HAVE ; A PRIORITY OF ZERO AND ALWAYS BE BLOCKED. REQUIRED POSITIONS ARE ; ENFORCED BY THE "ASSUME" MACRO. ; $CMBEG:: ;BEGINNING OF SYSCM AREA FOR CDA ; ; $ACCLK MUST REFERENCE THE SAME TWO WORDS AS $ABTIM FOR ACCOUNTING TO ; WORK, UNLESS ACCOUTING HAS ITS OWN CLOCK. IN THIS CASE, $ACCLK WILL ; BE THE ADDRESS OF WHERE ACCOUNTING CAN ACCESS IT. ACCOUNTING WILL ; USE A TWO WORD $ABTIM IF A PRIVATE CLOCK IS NOT AVAILABLE ; $ACCLK:: ;ABSOLUTE TIME CLOCK FOR ACCOUTING $ABTM2::.WORD 0 ;ADDITIONAL WORD FOR $ABTIM $ABTIM::.WORD 0 ;ABSOLUTE TIME COUNTER $ACTHD::.WORD . ;T.LNK-ACTIVE TASK LIST LISTHEAD ASSUME .-$ACTHD,T.PRI ;T.PRI MUST BE ZERO .BYTE 0 ;T.PRI-NULL TASK PRIORITY IS ZERO .IF DF M$$PRO $NCPU:: .BYTE M$$PRO ;T.IOC - NUMBER OF PROCESSORS IN SYSTEM .IFF $NCPU:: .BYTE 0 ;T.IOC - NOT MULTIPROCESSOR SYSTEM .ENDC $COMEF::.WORD 0 ;T.DPCB-COMMON EVENT FLAGS 1-16 .WORD 0 ;T.NAM-COMMON EVENT FLAGS 17-32 $HRCPT::.WORD 0 ;T.NAM+2-POINTER TO HRC... TCB $DEVHD::.WORD $DEVTB ;T.RCVL-PTR TO FIRST DEVICE CONTROL BLOCK $TKNPT::.WORD 0 ;T.RCVL+2-POINTER TO TKTN TCB $SHFPT::.WORD 0 ;T.ASTL-POINTER TO SHUFFLER TCB $CKCNT::.WORD K$$CNT ;T.ASTL+2-ADDRESS OF CLOCK COUNT REG $CKCSR::.WORD K$$CSR ;T.EFLG-ADDR OF CLOCK CNTRL STATUS REG .IF EQ K$$CSR-177546 $CKLDC::.WORD 0 ;T.EFLG+2-CLOCK LOAD COUNT .IFF $CKLDC::.WORD K$$LDC ;T.EFLG+2-CLOCK LOAD COUNT .ENDC $SYUIC::.BYTE 54,1 ;T.UCB-DEFAULT MAPPED SYSTEM UIC ASSUME .-$ACTHD,T.TCBL ;T.TCBL MUST BE ZERO .WORD 0 ;T.TCBL-LINK TO NEXT TCB ASSUME .-$ACTHD,T.STAT ;T.STAT MUST BE NONZERO $EXSIZ::.WORD $SYTOP ;T.STAT-ADDR OF LAST BYTE IN EXEC $PWRFL::.WORD 0 ;T.ST2-POWERFAIL RECOVERY REQUEST FLAG $SIGFL::.WORD 0 ;T.ST3-TASK WAITING FOR SIG EVENT .WORD 0 ;T.DPRI MUST BE 0, T.LBN - UNUSED $FXRPT::.WORD 0 ;T.LBN+1-POINTER TO PARITY ERROR TASK $LSTLK::.WORD 0 ;T.LDV-LOCK WORD (TCB ADDRESS OF OWNER) .WORD 3 ;T.PCB-CONSTANT FOR ALLOCATION ROUTINES .IF NDF K$$DAS $ICAVL:: ;ICB POOL SAME AS CORE POOL IF NO D SPACE .ENDC $CRAVL::.WORD $SYBEG ;T.MXSZ-ACTIVE TASK LIST LISTHEAD ASSUME .-$ACTHD,T.ACTL ;T.ACTL MUST BE ZERO .IF NDF M$$PRO $K6TAB:: ;REFERENCE LABEL FOR MAPPING IN ;NON-MULTIPROCESSOR SYSTEM .ENDC .WORD 0 ;T.ACTL-NEXT ACTIVE TASK-DUMMY BLK SIZE ; ; END OF SUPERIMPOSED AREA-REMAINING SYSTEM COMMON AREA ; $ACPTK:: .IF DF R$$AMD .WORD 0 ;TCB POINTER FOR DEFAULT F11ACP .ENDC ; DF R$$AMD $VERTK::.WORD 0 ;TCB POINTER FOR VERIFICATION TASK $LOGHD::.WORD 0 ;LOGICAL DEVICE ASSIGNMENT LISTHEAD $CFLPT::.WORD 0 ;POINTER TO FIRST CHECKPOINT FILE PCB $MOULS::.WORD 0 ;MOUNT LIST $LBUIC::.BYTE 54,3 ;LIBRARY UIC $NTUIC::.BYTE 54,1 ;NETWORK UIC $UTUIC::.BYTE 0,0 ;Utility UIC ;DC406 ;**-1 $SPMAX::.WORD 0 ;POINTER TO AUXILARY MONITOR POOL NODE $SPMVC::.BLKW 1 ;POINTER TO SPM NODE IN ICB POOL $HKSTS::.BLKW 1 ;SPM MONITOR STATUS WORD ; SPM ENTRY VECTORS - EXTERNAL TASKS (LOADER,F11ACP) CALL THROUGH THESE ; HOOKS. THEY POINT TO THE RETURN IN $GTPKT IF ; SPM IS TURNED OFF, AND SPM INTERCEPTS THEM WHEN IT ; IS ENABLED. ; .IF DF K$$DAS $SPV01::.WORD 0 ;SPM VECTOR FOR ACP HOOKPOINT ENTRY $SPV02::.WORD 0 ;SPM VECTOR FOR LOADR HOOKPOINT ENTRY $SPV03::.WORD 0 ;SPM VECTOR FOR LOADR HOOKPOINT ENTRY .IFF ; DF K$$DAS $SPV01::.WORD $SPVEX ;SPM VECTOR FOR ACP HOOKPOINT ENTRY $SPV02::.WORD $SPVEX ;SPM VECTOR FOR LOADR HOOKPOINT ENTRY $SPV03::.WORD $SPVEX ;SPM VECTOR FOR LOADR HOOKPOINT ENTRY .ENDC ; DF K$$DAS ; ; $BTTIM HOLDS THE ABSOLUTE TIME OF WHEN THE SYSTEM WAS BOOTED. ; THE TWO WORDS MUST BE CONSECUTIVE, THE LABEL IS ON THE SECOND ONE ; FOR COMPATABILITY WITH $ABTIM ; $BTTM2::.WORD 0 ;HIGH ORDER WORD OF $BTTIM $BTTIM::.WORD 0 ;VALUE OF $ABTIM WHEN SYS BOOTED .IF DF D$$MND $DICSR::.WORD D$$MND ;ADDRESS OF DIAMOND REGISTER $DITCB::.WORD 0 ;ADDRESS OF TCB FOR TASK BEING WATCHED .ENDC .IF DF M$$PRO $CKURM::.WORD 1 ;URM OF PROCESSOR THAT KEEPS CLOCK .ENDC .BLKW 1 ;CLOCK INTERRUPT FORK BLOCK LINK .BLKW 1 ;CLOCK INTERRUPT FORK BLOCK PC $INTCT::.WORD -1 ;CLOCK INTERRUPT TICKS COUNT $FRKHD::.WORD 0 ;FORK QUEUE LISTHEAD .WORD $FRKHD ;(LAST POINTS TO FIRST INITIALLY) $FMASK::.WORD FMASK ;SYSTEM FEATURE MASK $FMSK2:: .WORD F2MASK ;SECOND WORD OF SYSTEM FEATURE MASK $FMSK3:: .WORD F3MASK ;THIRD WORD OF SYSTEM FEATURE MASK $FMSK4:: .WORD F4MASK ;FOURTH WORD OF SYSTEM FEATURE MASK $FMSK5:: .WORD F5MASK ;FIFTH WORD OF SYSTEM FEATURE MASK $FMSK6:: .WORD F6MASK ;SIXTH WORD OF SYSTEM FEATURE MASK $FMEND:: ;REF. LABLE DELIMITING FEATURE MSK WDS .IF DF C$$RMT $XXWIN:: $FMSKR::.WORD FMASKR ; THIS WORD BECOMES $FMSK5 IF HF.RMT IS SET .WORD 0 ; W.IOC MUST BE ZERO, EVERYTHING ELSE IS ; IRRELIVANT .IFF ; C$$RMT $XXWIN:: $FMSKR:: .ENDC ; C$$RMT $PRMOD::.WORD 0 ;PROCESSOR MODEL NUMBER $CLKHD::.WORD 0 ;CLOCK QUEUE $COPT:: .WORD .CO0 ;POINTER TO COMMAND OUTPUT UCB $PARHD::.WORD 0 ;POINTER TO PARTITION LIST $LDRPT::.WORD 0 ;POINTER TO LOADER TCB $TSKHD::.WORD $ACTHD ;POINTER TO SYSTEM TASK DIRECTORY $CBDHD::.WORD 0 ;COMMON BLOCK DIRECTORY LISTHEAD .IF DF G$$GEF $GGEF:: .WORD 0 ;GROUP GLOBAL EVENT FLAGS $GFTCB::.WORD $GEFPT+2 ;GRP GLOBAL USER TCB POINTER $GEFPT::.WORD $GEFPT+2 ;GROUP GLOBAL MASK ADDRESS POINTER .WORD 0 ;DUMMY WORD FOR NON-GRP GLOBAL USE .ENDC ; DF G$$GEF $LDPCB::.WORD 0 ;CURRENT LOADER PCB POINTER $VECTR::.WORD V$$CTR-4 ;HIGHEST VECTOR ADDRESS $MXEXT::.WORD 177777 ;INITIALLY NO LIMIT FOR TASK EXTENSION $AVRHD::.WORD 0 ;AUTOMATIC VOLUME RECOGNITION LISTHEAD $PRIFR::.WORD 0 ;CURRENT AMOUNT OF FREE POOL $ULDPT::.WORD 0 ;MICROCODE LOADER TASK TCB ADDRESS $GNLST::.WORD 0 ;GENERAL USE POOL PACKET LISTHEAD $PTCBL::.WORD 0 ;PROTOTYPE TCB LISTHEAD $PTCPT::.WORD 0 ;KISAR5 BIAS OF PROTOTYPE TCB $PASTH::.WORD 0,.-2 ;PARTITION AST LISTHEAD ; ; P/OS $NXTSK LOCK AND BASE FROM WHICH TO START SEARCH ; .IF DF A$$CKP $NXTLK::.WORD 100000 ;$NXTSK RECURSION LOCK (DEFAULT TO RSX) .IFF ;DF,A$$CKP $NXTLK::.WORD 0 ;$NXTSK RECURSION LOCK .ENDC ;DF,A$$CKP $NXTBA::.WORD 0 ;$NXTSK BASE SEARCH BIAS ; ; LOGICAL NAME TRANSLATION SUPPORT DATA ; .IF DF L$$GCL $LOGTB::.WORD 0 ;APR BIAS PTR TO SYSTEM LOGICAL HASH TABLE .WORD 0 ;APR BIAS PTR TO GROUP LOGICAL HASH TABLE $USRLG::.WORD 0 ;APR BIAS PTR TO USER LOGICAL HASH TABLE .WORD 0 ;APR BIAS PTR TO TASK LOGICAL HASH TABLE .WORD 0 ;RESERVED WORD FOR P/OS LT.USR (ALWAYS 0) .IFF ; DF L$$GCL $LOGTB:: $USRLG:: .ENDC ; DF L$$GCL ; ; NAMED DIRECTORY CONTEXT BLOCK POINTER ; $CTXPT:: .IF DF N$$DIR .WORD 0 .ENDC ;DF N$$DIR ; ; THE FOLLOWING WORDS ARE USED FOR THE POOL MONITOR INTERFACE. ; THE ORDERING OF THESE WORDS CANNOT BE CHANGED BECAUSE PMT AND VMR ; ARE WRITTEN TO DEPEND ON IT. ; .IF DF P$$CTL $PTTCB::.WORD 0 ;TCB ADDRESS OF POOL RECOVERY TASK $PRISZ::.WORD 0 ;TOTAL SIZE OF FREE POOL $POLST::.WORD 0 ;EXEC/POOL TASK COMMUNICATIONS WORD $PRIHL::.WORD P$$HIL ;HIGH WATER MARK FOR POOL MONITORING $PRILL::.WORD P$$LOL ;LOW WATER MARK FOR POOL MONITORING $PFRSZ::.WORD P$$FRS ;MINIMUM SIZE OF LARGEST FRAGMENT $POLBP::.WORD P$$BPR ;MINIMUM PRIORITY OF NONPRIVILEGED ;TASKS TO EXECUTE DURING LOW POOL $POLFL::.WORD 0 ;EXECUTIVE POOL USAGE CONTROL FLAGS .IFF $PTTCB:: ;ALWAYS DEFINE THESE LABELS $PRISZ:: $POLST:: $PRIHL:: $PRILL:: $PFRSZ:: $POLBP:: $POLFL:: .ENDC ; ; SHADOW RECORDING IMPURE DATA AREA ; $SHUMB::.WORD 0 ;ROOT FOR UMB LIST $SHERR::.WORD 0 ;POINTS TO TCB OF SHADOW ERROR TASK $SHLIM::.WORD 10. ;ERROR PACKET LIMIT $SHPCT::.WORD 0 ;CURRENT SHADOW ERROR COUNT $SHLOS::.WORD 0 ;NUMBER OF PACKETS LOST FROM SATURATION $RCTPT::.WORD 0 ;POINTER TO CURRENT RCT... TCB ; ; UNIVERSAL RECEIVER TASK TCB ADDRESS ; $URTCB::.WORD 0 ;POINTER TO TCB OF URT... $EXCRC::.WORD 0 ;EXECUTIVE RO CODE CRC16 ;**-2 ; ; WINDOW I/O COUNT FLAG. THE FOLLOWING WORD IS USED BY DREIF, ; IOFIN, AND DEACC IN THE ACP TO DETERMINE WHETHER TO MANAGE ; THE WINDOW I/O COUNT. IF SET TO DV.F11 THE BEHAVIOR IS TO ; MANAGE THE I/O COUNT (NEW). IF SET TO ZERO THE I/O COUNT IS ; LEFT ALONE AND THE WINDOW MAY BE DEALLOCATED WITH I/O ; PENDING. THIS MAY CAUSE CRASHES LATER. ; $WCFLG::.WORD DV.F11 ; WINDOW I/O COUNT MANAGEMENT FLAG .IF DF D$$CHE ;DISK DATA CACHING SUPPORT ; ; DATA CACHING IMPURE DATA AREA ; $DCPCB::.WORD 0 ;PCB ADDRESS OF SYSTEM DEFAULT CACHE PAR ; ; THESE CELLS ARE FILLED IN BY $MPVBN (MDSUB) FOR ; VIRTUAL TO LOGICAL I/O TRANSLATIONS. THIS INFORMATION ; IS USED BY THE CACHER WHEN PROCESSING THE RESULTING ; I/O PACKET. ; $DCCEL::.WORD 0 ;CURRENT EXTENT LENGTH $DCCEB::.WORD 0,0 ;CURRENT EXTENT BASE LBN $DCNEL::.WORD 0 ;NEXT EXTENT LENGTH $DCNEB::.WORD 0,0 ;NEXT EXTENT BASE LBN $DCSTS::.WORD 0 ;STATUS INFORMATION FROM WINDOW BLOCK .ENDC ;D$$CHE ; ; POINTER TO FIRST IP11 UCB, USED BY IP11 POWERFAIL CODE (IN POWER) ; $IPUCB::.WORD 0 ; POINTER TO FIRST IP11 UCB ; ; PARAMETER AREA FOR STATUS CHANGE ROUTINES IN OLRSR.MAC ; $SCDEV::.BLKW 1 ;UCB OR KRB FOR STATUS CHANGE $SCRET:: ;REFERENCE LABEL (ALIAS FOR $SCCTB) $SCCTB::.BLKW 1 ;CTB IF $SCDEV CONTAINS KRB $SCOFL::.BLKB 1 ;ONLINE OR OFFLINE PARAMETER $SCERR::.BLKB 1 ;ERROR RETURN FROM DRIVER .IF DF M$$PRO $SCURM::.BLKW 1 ; URM OF DESIRED STATUS CHANGE .ENDC ;DF M$$PRO ; ; EVENT TRACE READ/WRITE DATA AREA ; .IF DF E$$VNT ; ; CURRENT BUFFER INFORMATION ; $EVKS6::.WORD 0 ;KISAR6 OFFSET TO BUFFER $EVDIS::.WORD 0 ;BUFFER POSITION FOR NEXT EVENT $EVLEN::.WORD 0 ;PTR TO WORD BEYOND END OF BUFFER $EVSEQ::.WORD 0 ;EVENT SEQUENCE NUMBER $EVLOS::.WORD 0 ;NUMBER OF EVENTS LOST THROUGH SATURATION $EVTCB::.WORD 0 ;TCB ADDRESS OF EVENT LOGGER TASK ; ; EVENT SWITCH TABLE ; ; INDEXED BY EVENT NUMBER ; IF BYTE NEGATIVE, EVENT DISABLED ; IF BYTE POSITIVE, VALUE IS LENGTH OF EVENT ; ; EVERY EVENT MUST CONTAIN AN ENTRY IN THIS TABLE, OF THE FORM: ; ; .BYTE -EV.XXX ;THIS IS A SAMPLE EVENT ; ; WHERE XXX IS THE NUMBER OF THE EVENT. ; $EVTAB:: ;REFERENCE LABEL .REPT E$$VNT .BYTE -1 ;SET ALL EVENTS TO NULL INITIALLY .ENDR .BYTE 0 ;THERE IS NO EVENT ZERO .EVEN ; ; EVENT BUFFER MANAGEMENT ; $EVBSQ::.WORD 1 ;BUFFER SEQUENCE NUMBER (NEVER = 0) $EVLST:: ;REFERENCE LABEL .REPT E$$BUF+1 .WORD 0 ;KISAR6 POINTER TO BUFFER .ENDR .IFF $EVKS6:: ;REFERENCE LABEL $EVDIS:: $EVLEN:: $EVSEQ:: $EVTAB:: $EVBSQ:: $EVLST:: .ENDC ; WATCHPOINT DEBUG INFO .IF DF R$$WPT $WPLST::.WORD 0 ;LAST SYSTEM STATE ROUTINE CALLED $WPVAL::.WORD 0 ;VALUE TO WATCH FOR OR AGAINST $WPADR::.WORD $WPVAL ;PLACE TO WATCH FOR IT .ENDC ; DF R$$WPT ; ; ADDITIONAL ARGUMENT TO $POWER FOR MULTIPROCESSOR SYSTEMS. ; .IF DF M$$PRO!E$$BUS $PFURM::.WORD 0 ;URM TO POWERFAIL .ENDC $SWR:: .WORD 0 ;SOFTWARE SWITCH REGISTER IF NONE IN HARDWARE ; EXECUTIVE COMMON APR TABLE ; ; * * * N O T E * * * ; ; THIS TABLE IS ORDER DEPENDENT, SINCE THERE IS A TABLE IN VMR OF THE ; STANDARD COMMON NAMES THAT OCCUR IN THE DIRECTIVE PARTITION. A SIDE ; EFFECT OF THIS IS THAT THE ENTRIES BELOW MAY NOT BE CONDITIONALIZED ; .IF DF D$$PAR $DRAPR::.WORD 0 ;APR VALUE TO MAP DIRECTIVE PARTITION $DRAP2::.WORD 0 ;BIAS OF SECOND DIRECTIVE COMMON $DRAP3::.WORD 0 ;BIAS OF THIRD DIRECTIVE COMMON $DRAP4::.WORD 0 ;BIAS OF FOURTH DIRECTIVE COMMON $DRAPV::.WORD 0 ;BIAS OF EXEC VECTORING DIRECTIVE $DRCHE::.WORD 0 ;BIAS OF DATA CACHE MANAGER COMMON .WORD -1 ;FLAG FOR END OF COMMON BIAS TABLE .IFF $DRAPR:: ;ALWAYS DEFINE THIS SYMBOL .ENDC ; $ENVEC - TABLE OF ENTRY POINTS FOR VECTORING CODE WHICH CAN'T ; USE $DRGIN ; ; THIS TABLE CONTAINS A *SMALL* NUMBER OF ADDRESSES AND IS ; INTENDED TO PROVIDE THE MINIMUM AMOUNT OF INFO TO ACCESS THEN ; SYSTEM WITHOUT BEING LINKED TO IT. ; $ENVEC::.WORD $DRAPV ;POINTER TO APR BIAS OF VECTORING ;COMMON .IF DF C$$CDA $CRKRB::.WORD 0 ;CRASH DUMP DEVICE KRB ADDRESS $CRSFM::.WORD 0 ;CRASH FORMATTER NUMBER (RH TAPE ONLY) $CRSUN::.WORD C$$RUN ;CRASH PHSICAL UNIT NUMBER. NOTE: C$$RUN IS ;...A LOGICAL UNIT NUMBER. INITL CONVERTS ;...$CRSUN TO A PHYSICAL UNIT NUMBER. $CRCSR::.WORD 0 ;CRASH DEVICE CSR ADDRESS WHEN NO KRB $CRLCK::LCKDF$ SPIN ;ONLY ONE CPU SHOULD DUMP MEMORY $CRIOP::.WORD 0 ; ADDRESS OF COMMON PCB FOR I/O PAGE IMAGE .ENDC ; DF C$$CDA .IF DF R$$NDC $RNDCT::.WORD R$$NDC ;CLOCK TICKS TO NEXT SCHEDULE INTERVAL $RNDC:: .WORD R$$NDC ;CLOCK TICKS PER SCHEDULING INTERVAL $RNDL:: .BYTE R$$NDL ;LOWEST PRIORITY CLASS TO CONSIDER $RNDH:: .BYTE R$$NDH ;HIGHEST PRIORITY CLASS .ENDC .IF DF S$$WPC&D$$ISK $SWPCT::.WORD S$$WPC ;CLOCK TICKS TO NEXT SWAPPING INTERVAL $SWPC:: .WORD S$$WPC ;CLOCK TICKS PER SWAPPING INTERVAL $SWPR:: .WORD S$$WPR ;SWAPPING PRIORITY .ENDC ; ; DAYS PER MONTH TABLE (ENTRY CONTAINS DAYS PER MONTH + 1) ; $DYPMN::.BYTE 29.,32. ;FEBRUARY, MARCH .BYTE 31.,32. ;APRIL, MAY .BYTE 31.,32. ;JUNE, JULY .BYTE 32.,31. ;AUGUST, SEPTEMBER .BYTE 32.,31. ;OCTOBER, NOVEMBER .BYTE 32.,32. ;DECEMBER, JANUARY ; ; BIT MASK TABLE ; ; NOTE: DUE TO THE ORGANIZATION OF THE SUPERVISOR MODE MAPPING CONTROL ; SUPPORT, NAMELY THE FACT THAT BIT 0 OF THE BYTE CORRESPONDS TO ; APR 1, NOT APR 0, THERE MUST BE A ZERO PRECEDING $BTMSK. ; .WORD 0 ;DUMMY FOR APR0 BITMASK $BTMSK::.WORD 1 ;BIT 0. .WORD 2 ;BIT 1. .WORD 4 ;BIT 2. .WORD 10 ;BIT 3. .WORD 20 ;BIT 4. .WORD 40 ;BIT 5. .WORD 100 ;BIT 6. .WORD 200 ;BIT 7. .WORD 400 ;BIT 8. .WORD 1000 ;BIT 9. .WORD 2000 ;BIT 10. .WORD 4000 ;BIT 11. .WORD 10000 ;BIT 12. .WORD 20000 ;BIT 13. .WORD 40000 ;BIT 14. .WORD 100000 ;BIT 15. ; BIT MASK TABLE FOR FORMING ADDRESS MASKS IN $ACHRO IN ; USER I/D SYSTEMS .IF DF U$$DAS!S$$LIB .BYTE 0 $BCMSK::.BYTE 1,3,7,17,37,77,177,377 .ENDC ; DF U$$DAS!S$$LIB ; TABLE OF APR ADDRESSES USED BY GIN SF.APR FUNCTION .EVEN $APRTB::.WORD KINAR0,KINDR0 ;KERNEL I SPACE REGISTERS .IF DF K$$DAS .WORD KDSAR0,KDSDR0 ;KERNEL D SPACE REGISTERS .ENDC ; DF K$$DAS .WORD UINAR0,UINDR0 ;USER I SPACE REGISTERS .IF DF U$$DAS .WORD UDSAR0,UDSDR0 ;USER D SPACE REGISTERS .ENDC ; DF U$$DAS .IF DF S$$LIB .WORD SISAR0,SISDR0 ;SUPER I SPACE REGISTERS .WORD SDSAR0,SDSDR0 ;SUPER D SPACE REGISTERS .ENDC ; DF S$$LIB .WORD 0 ;END OF TABLE ; ; SHUFFLER TASK REQUEST LIMIT FLAGS. $SHFTM CONTAINS THE NUMBER ; OF CLOCK TICKS THAT MUST EXPIRE BEFORE THE SHUFFLER TASK CAN ; BE REQUESTED BY THE EXECUTIVE. IT IS INITIALIZED TO THE VALUE ; CONTAINED IN $SHFCT EACH TIME THE SHUFFLER EXECUTES. ; $SHFTM:: .WORD 0 ;TIME REMAINING BEFORE NEXT POSSIBLE REQUEST $SHFCT:: .WORD S$$HFC ;MINIMUM TICKS BETWEEN SHUFFLER REQUESTS ; ; ONLINE ERROR LOGGING DATA BASE ; .IF DF E$$LOG ; ; ERROR LOG FEATURE MASK SUPPORT ; EFEAT = 0 .IIF DF,E$$ICM EFEAT = EFEAT!EL.ICM .IIF DF,E$$MOU EFEAT = EFEAT!EL.MOU .IIF DF,E$$SEF EFEAT = EFEAT!EL.SEF $EFMSK::.WORD EFEAT ;SELECTED FEATURE MASK WORDS $ERHEA::.WORD 0, .-2 ;MESSAGE QUEUE LISTHEAD $ENTSQ::.WORD 0 ;ENTRY SEQUENCE NUMBER $ERFLA::.WORD 0 ;ERROR LOGGER FLAG WORD $ERRX:: .WORD 0 ;POINTER TO SECONDARY POOL ERRLOG DATA .IFF $ERFLA:: ;REFERENCE LABEL .ENDC ; DF E$$LOG $ERRPT::.WORD 0 ;POINTER TO ERROR LOGGER TCB $ERRSQ::.WORD 0 ;ERROR SEQUENCE NUMBER $NCTPT:: .IF DF T$$TSA .WORD 0 ;APR BIAS OF NT.NCT .WORD 0 ;APR5 ADDRESS OF QUEUE ROUTINE .WORD 0 ;NCT... TCB ADDRESS .ENDC ; T$$TSA .IF DF R$$PRO ; ; $NVRTM CONTAINS THE NUMBER OF TICKS THAT MUST ELAPSE BEFORE THE ; O/S UPTIME CELL IN THE PROFESSIONAL 3XX NVR IS UPDATED. IN GENERAL ; IT IS SET TO THE NUMBER OF TICKS PER SECOND TIMES 60. THIS RESULTS ; IN UPTIME IN MINUTES BEING RECORDED. IT IS INITIALIZED WITH $NVRCT ; EACH TIME THAT NVR IS UPDATED. ; $NVRTM::.WORD 0 ;TICKS TILL NEXT NVR UPDATE $NVRCT::.WORD N$$VRC ;TICKS PER NVR UPDATE CYCLE ; ; TASK NAME OF THE P/OS DISPATCHER. ; USED TO SEND MESSAGES AND AST'S TO IT. ; $CTBNM::.RAD50 /C$CTEX/ ;NAME OF THE P/OS DISPATCHER .ENDC ; DF R$$PRO $DVSAV::.BLKW 1 ;SAVED CSR CONTENTS ; ; SYSTEM BOOTSTRAP AND SAVE CONFIGURATION VECTOR ; .IF NDF K$$DAS $SYALT:: ;REFERENCE LABEL .ENDC $SYSIZ::.WORD S$$YSZ ;SIZE OF MEMORY IN 32W BLOCKS .BLKB 1 ;LOGICAL UNIT NUMBER OF LOAD DEVICE .BLKB 1 ; HIGH ORDER LBN OF SYS IMAGE IF NOT E$$LBN ;DC430 .BLKB 2 ;LBN OF LOAD/SAVE IMAGE ON DISK ;DC430 .BLKW 1 ;NAME OF LOAD DEVICE IN ASCII ;DC430 .BLKW 1 ;SIZE OF LOAD IMAGE IN 256W BLOCKS ;DC430 .IF DF,E$$LBN ; 32-BIT DEVICE SUPPORT ;DC430 .BLKW 1 ; HIGH ORDER LBN OF LOAD DEVICE BITS[16:31] ;DC430 .ENDC ;DF,E$$LBN ;DC430 ; ;**-4 ; TIME LIMIT PARAMETERS ; .WORD -1 ;YEARS PER UNIVERSE .WORD 13. ;MONTHS PER YEAR .WORD 32. ;DAYS PER MONTH (CALCULATED) .WORD 24. ;HOURS PER DAY .WORD 60. ;MINUTES PER HOUR .WORD 60. ;SECONDS PER MINUTE ; ; ACCOUNTING USES $ACTPS TO GET THE NUMBER OF CLOCK TICKS PER SECOND. ; ON SYSTEMS WHERE ACCOUNTING IS USING THE SYSTEM CLOCK, $ACTPS MUST ; REFERENCE THE SAME WORD AS $TKPS. IF ACCOUNTING HAS ITS OWN CLOCK, ; IT WILL CONTAIN THE TICK RATE OF THAT CLOCK. ; $ACTPS:: ;CLOCK RATE FOR ACCOUNTING .IF EQ K$$CSR-177546 $TKPS:: .WORD H$$RTZ ;TICKS PER SECOND .IFF $TKPS:: .WORD K$$TPS ;TICKS PER SECOND .ENDC ; ; CURRENT TIME VECTOR ; .WORD 82. ;YEAR OF UNIVERSE - HAPPY 30TH .WORD 3. ;MONTH OF YEAR - BIRTHDAY .WORD 30. ;DAY OF MONTH - MS. LAWLER .WORD 0 ;HOUR OF DAY .WORD 0 ;MINUTE OF HOUR .WORD 0 ;SECOND OF MINUTE $TTNS:: .WORD 0 ;TICK OF SECOND .IF DF P$$3XX $CKCSA::.WORD $CKCSA ;THIS WORD IS SET EITHER TO POINT ;TO ITSELF (PDP-11 HARDWARE) OR ;TO THE CLOCK CSR (SAME AS $CKCSR) ;(PRO HARDWARE) TO MAKE TDSCH CLOCK ;TICKLING RUN TIME CONDITIONAL .ENDC ; DF P$$3XX ; ; LIFO SEND AND I/O PREALLOCATION LIST POINTER AND PARAMETERS ; .IF DF Q$$OPT $PKAVL::.WORD 0 ;POINTER TO FIRST PACKET IN LIST $PKNUM::.BYTE 0 ;NUMBER OF PACKETS CURRENTLY IN LIST $PKMAX::.BYTE Q$$OPT ;MAXIMUM NUMBER ALLOWED IN LIST .IFF $PKNUM:: ;REF LABEL FOR MCR $PKMAX:: ;REF LABEL FOR MCR .ENDC ; ; SAVE AREA FOR CALCULATED MULTI-USER TASK NAMES. ; .IF DF R$$DSP $TNAME::.BLKW 2 ;(2ND WORD IS ALSO FLAG FOR RQST & RUN) .ENDC ; ; TEMPORARY STORAGE VARIABLES FOR DIRECTIVE SERVICES ; $TEMP0::.BLKW 1 ; $TEMP1::.BLKW 1 ; $TEMP2::.BLKW 1 ;COMPLETION ROUTINE ADDR FOR $GSPKT $TEMP3::.WORD 0 ;SCRATCH SPACE FOR SPWN$ AND RPOI$ $TEMP4::.WORD 0 ;SCRATCH SPACE FOR SPWN$ AND RPOI$ $TONYL::.WORD 0 ;SCRATCH STORAGE FOR SEEK OPTIMIZATION $IOTMP::.WORD 0 ;SCRATCH WD FOR ADDR CHECKING AND ;ACP QIO TEMPORARY WORK $ATTPT::.WORD 0 ;POINTER TO I.AADA IN CURRENT PACKET $CTLST::.WORD $CTB0 ;START OF THE CTB LIST ; KERNEL AST DISPATCH TABLE ; THIS TABLE IS FILLED IN BY INITL AT BOOT TIME. ANY CHANGES MADE ; HERE MUST BE REFLECTED IN INITL AT DBTBL. ; ; IF THE SYSTEM DOES NOT SUPPORT KERNEL I/D SPACE, THEN THE REFERENCES ; ARE RESOLVED DIRECTLY. ; $KATBL::.WORD $FINBF ;$FINBF-BUFF I/O FINISH (AK.BUF) .WORD $FINXT ;$FINXT-OFF. TASK EXIT (AK.OCB) .WORD $GENBF ;$GENBF-GEN. BUFF. I/O (AK.GBI) .WORD $DBTRP ;$DBTRP-FORCE T-BIT TRAP (AK.TBT) .WORD $FINDI ;$FINBF-DELAYED I/O FIN (AK.DIO) .IF DF G$$GEF .WORD $GGFRN ;$GGFRN-GROUP GBL RUNDWN (AK.GGF) .IFF ; DF G$$GEF ; .WORD 0 ;IF OTHER KASTS ARE INVENTED, MAKE ;THIS A PLACEHOLDER IN THE TABLE. .ENDC ; DF G$$GEF .IF DF M$$PRO!E$$BUS $URMST::.WORD 0 ;UNIBUS RUN MASK STATUS TABLE .ENDC ;DF, M$$PRO!E$$BUS .IF DF M$$PRO .IF DF X$$DBT $XDTFL::.WORD 1 ;XDT INITIALIZATION TABLE $XDTPR::.WORD 0 ;FLAG FOR PROMPTS OF XDT .IFF $XDTFL::.WORD 177777 ;ALWAYS LOOKS INITIALIZED WHEN NOT THERE $XDTPR:: ;REFERENCE LABEL -- UNUSED IF XDT ALREADY ;INITIALIZED .ENDC OFF=177777 .REPT M$$PRO OFF=OFF+OFF .ENDR $CPMSK::.WORD OFF ;PROCESSOR BIT CLEAR MASK $IIMSK::.WORD 0 ;IIST INTERRUPT MASK WORD $IIPND::.WORD 0 ;PENDING URM WORK WORD. LOCKED WITH $FORKL $IICPU::.WORD 0 ;MASK OF URMS THAT HAVE BEEN INTERRUPTED $IINXT::.WORD $BTMSK ;ROUND ROBIN WORD FOR $IISVC $STENB::.WORD 0 ;SANITY TIMER ENABLED ON VARIOUS CPU'S $STFLG::.WORD 0 ;SECONDARY SANITY TIMER FLAG $STALR::.WORD 0 ;SANITY TIMER ALARM ENABLED ON CPU'S $PWRMK::.WORD 0 ;MASK OF CPUS IN THEIR POWERFAIL CODE $CPPAR::.WORD 0 ;POINTER TO PARTITION FOR CPU LOCAL MEM ; NOTE THAT THE NEXT TWO TABLES FOLLOW AN INDEX STRUCTURE LIKE THAT ; OF $PARTB+2 INS LOWCR, AND THE TWO SHOULD BE UPDATED IN HARMONY WITH ; HRC (MODULE HRBOX) .IF DF M$$K11 $MKCS1::.WORD 1 ;CONTENTS FOR CSR 1 OF MK11'S .WORD 8. ;NUMBER OF MK11'S POSSIBLE $MKCSR::.BLKW 8. ;CSR ADDRESS TABLE FOR MK11 PARITY $MKCS2::.BLKW 8. ;CSR CONTENTS FOR MK11'S .ENDC ; DF M$$K11 ; ; MULTIPROCESSOR LOCKS ; ; BYTE 0 -- LOCK VALUE (0 IF LOCKED, 1 IF FREE) ; BYTE 1 -- IF BYTE 0 EQUALS: ; 0, THEN BYTE 1 EQUALS PROCESSOR ID OF OWNER ; 1, THEN BYTE 1 EQUALS COMPLEMENT OF ID OF ; PREVIOUS OWNER ; ; IF LOCK TYPE IS "WAIT" THEN: ; ; BYTE 2,3 = SECONDARY LOCK WORD (ABOVE FORMAT) FOR WAIT MASK. ; BYTE 4,5 = MASK OF WAITING PROCESSORS. ; ; NOTE: BYTES 4+5 ARE REFERENCED AS A WORD. ; $EXECL::LCKDF$ WAIT ;SERIALIZE ACCESS TO EXECUTIVE DATA $FORKL::LCKDF$ SPIN ;SERIALIZE ACCESS TO FORK LIST $IIFNL::LCKDF$ SPIN ;SERIALIZE ACCESS TO $MPTAB $PWRLK::LCKDF$ SPIN ;SERIALIZE ACCESS TO $PWRMK ; ; MULTIPROCESSOR TABLE ; $TKTAB:: ;CURRENT TASK TCB TABLE .REPT M$$PRO .WORD $ACTHD ;INITIALIZE TO NULL TASK TCB .ENDR .IFTF $RQTAB::.WORD $ACTHD ;RESCHEDULE POINTER TCB TABLE .IFT .REPT M$$PRO-1 .WORD $ACTHD ;INITIALIZE TO NULL TASK TCB .ENDR .IFTF $PRTAB::.WORD 0 ;PROCESSOR CURRENT TASK PRIORITY TABLE .IFT .REPT M$$PRO-1 .WORD 0 ;INITIALIZE TO PRIORITY ZERO .ENDR $MPTAB:: ;PROCESSOR STATUS TABLE .REPT M$$PRO .WORD MP.STP ;INITIALLY STOPPED .ENDR OFF=0 ;START K6 OFFSETS AT ZERO $K6TAB:: ;PROCESSOR IMPURE AREA APR OFFSETS .REPT M$$PRO .WORD OFF OFF=OFF+40 ;INCREASE OFFSET BY 1K .ENDR OFF=1 ;START PROCESSOR URMS AT 1 $URMTB:: ;PROCESSOR URM CONNECTIVITY TABLE .REPT M$$PRO .WORD OFF OFF=OFF+OFF ;POOR MAN'S LEFT SHIFT .ENDR OFF=1 ;START PROCESSOR URMS AT 1 $CRMTB:: ;COMPLEMENT OF CPU URM CONNECTIVITY TBL .REPT M$$PRO .WORD ^C OFF=OFF+OFF ;POOR MAN'S LEFT SHIFT .ENDR .IFTF $CRFLG::.WORD 0 ;FLAG INDICATING REGISTERS HAVE BEEN SAVED .IFT .REPT M$$PRO-1 .WORD 0 .ENDR $CRFPR::.WORD 377 ;$PROCN OF FIRST PROCESSOR TO CRASH .IFT .WORD 1 ;URM IN FORK BLOCK FOR ERRLOG .IFTF .BLKW 2 ;ERROR LOGGING FORK BLOCK $PBEZ:: ;REFERENCE LABEL .IFT URM=2 .REPT M$$PRO-1 .WORD URM ;URM IN FORK BLOCK URM=URM*2 .BLKW 2 ;3 WORD (TOTAL) FORK BLOCK .ENDR .ENDC ; DF M$$PRO .IF DF F$$LPP .IF DF M$$PRO .WORD 1 ;URM IN FORK BLOCK .IFTF .BLKW 2 ;2 WORD FORK BLOCK $FLFTB:: ;REFERENCE LABEL .IFT URM=2 .REPT M$$PRO-1 .WORD URM URM=URM*2 .BLKW 2 .ENDR .ENDC .ENDC ; ; DEFINITIONS FOR NON MK11 MEMORY SYSTEMS ; .IF NDF M$$K11 $MKCS1:: .WORD 0 ;# OF MK11 REGISTERS (FOR BOO,SAV,HRC) $MKCSR:: $MKCS2:: .ENDC ; DF M$$K11 .IF NDF M$$PRO ; ; DEFINITIONS FOR NON-MULTIPROCESSOR SYSTEMS ; $CKURM:: ;REFERENCE LABELS $CPBIT:: $CPCRM:: ;COMPLEMENTED RUN MASK $CPMSK:: $CPURM:: $CPUSC:: ;CPU STATUS CHANGE ENTRY $CRMTB:: ;COMPLEMENTED RUN MASK TABLE $EXECL:: $IBXMT:: ;IIST INTERCPU BOOT TRANSMIT $IIMSK:: $IISTM:: ;IIST SUBROUTINE ENTRY POINT $IIXMT:: ;IIST TRANSMIT SUBROUTINE $MPTAB:: $PROCN:: $PROC2:: $STENB:: ;SANITY TIMER ENABLE $STFLG:: $STALR:: $TKTAB:: .IF NDF E$$BUS $URMST:: $PFURM:: .ENDC ;NDF E$$BUS $SCURM:: $URMTB:: $XDTFL:: $XDTPR:: $XDTIN:: .ENDC .IF NDF E$$BUS $BSCTB:: $BSTBX:: .ENDC ;NDF E$$BUS ; HERE WE DEFINE A SINGLE "FAKE WORD" WHICH RECEIVES ALL THE ADDRESSES ; FOR THINGS WHICH ARE NOT GENNED INTO THE SYSTEM, BUT WHICH REQUIRE ; THAT THE ADDRESSES ALWAYS BE RESOLVED FOR TASKBUILDING MCR, ETC. ; THIS ONE (IN SYSCM) IS TO BE USED FOR D SPACE LOCATIONS, AND THE ; ONE IN LOWCR IS USED FOR I SPACE REFERENCES AND CPU SPECIFIC INFO ; (ALSO THINGS WHICH MUST BE ACCESSED WHEN D SPACE IS TURNED OFF) .IF NDF R$$WPT $WPVAL:: $WPADD:: $WPLST:: FAKE = 0 .ENDC ; NDF R$$WPT .IF NDF M$$NET ;IF NO DECNET SUPPORT $DECPT:: ;POINTER TO DECNET HOME BLOCK FAKE = 0 .ENDC .IF NDF E$$LOG $ERHEA:: $ENTSQ:: FAKE = 0 .ENDC ; NDF E$$LOG .IF DF FAKE .WORD -1 ;FAKE DATA LOCATION FOR ALL OF THE ;ABOVE .ENDC ; DF FAKE .IF DF P$$OOL $PLPAR::.WORD 0 ;POINTER TO SECONDARY POOL PCB $POLHD::.WORD 0 ;LIST HEAD FOR SECONDARY POOL FREE LIST $SECPB::.WORD 0 ;NUMBER OF TOTAL BLOCKS IN SECONDARY POOL $SECFR::.WORD 0 ;NUMBER OF FREE BLOCKS IN SECONDARY POOL .IFF $PLPAR:: $POLHD:: $SECPB:: $SECFR:: .ENDC .IF DF A$$CNT $SYLHD::.WORD 0 ;LISTHEAD FOR SYSLOG INPUT QUEUE .WORD $SYLHD ;END OF LIST POINTER $SABPT::.WORD 0 ;POINTER TO SYSTEM ACCOUNT BLOCK .IF DF X$$ACC $ACNFE::.WORD BF.TRN!BF.XAC ;EXTENDED ACCOUNTING .IFF ;X$$ACC $ACNFE::.WORD BF.TRN ;NORMAL SUPPORTED ACCOUNTING .ENDC ;X$$ACC $APLIM::.WORD 0 ;FREE SEC POOL SPACE ACNT MUST RESERVE $SYUAB::.WORD 0 ;ADDRESS OF UAB FOR SYSTEM TASKS $CKUAB::.WORD 0 ;UAB FOR TASK RUN FROM CLOCK QUEUE .IFF $SABPT:: $SYLHD:: $ACNFE:: $APLIM:: $SYUAB:: .IFTF $LOGPT::.WORD 0 ;POINTER TO TCB OF SYSLOG TASK .ENDC ; ; CLI DATABASE AREA ; $CLICQ::.WORD 0 ;COMMAND QUEUE LISTHEAD .WORD $CLICQ $CNTLN::.WORD 0 ;CONTINUATION LINE SEGMENT LISTHEAD .WORD $CNTLN $CPTBL::.WORD $MCRPT ;POINTER TO CPB FOR MCR .IF DF A$$CLI .REPT A$$CLI-1 .WORD 0 ;TABLE FOR CPB ADDRESSES .ENDR $NMCLI==A$$CLI ;NUMBER OF CLIS SYSTEM SUPPORTS .IFTF ;A$$CLI ; ; CPB FOR MCR ; $MCRPT::.WORD 0 ;POINTER TO MCR'S TCB, START OF MCR'S CPB .RAD50 /MCR / ;CLI NAME .WORD CP.LGO ;STATUS WORD .BYTE MDPL ;LENGTH OF DEFAULT PROMPT STRING .BYTE MCPL ;LENGTH OF CONTROL/C PROMPT STRING $$$=. .IF DF R$$MIC .ASCIZ <15><12>/$ / ;MICRO DEFAULT PROMPT .IFF ; DF R$$MIC .ASCIZ <15><12>/>/ ;DEFAULT PROMPT STRING .ENDC ; DF R$$MIC MDPL=.-$$$ $$$=. .IF DF R$$MIC .ASCIZ <15><12>/DCL>/ ;CONTROL/C PROMPT .IFF ; DF R$$MIC .ASCIZ <15><12>/MCR>/ ;CONTROL/C PROMPT STRING .ENDC ; DF R$$MIC MCPL=.-$$$ .EVEN .IFF ;A$$CLI $NMCLI==0 ;ALTERNATE CLI NOT SUPPORTED .ENDC ;A$$CLI $CMFIN:: ; END OF SYSCM AREA FOR CDA ; ; PARAMETER WORD TO CONTROL TERMINAL DRIVER SYSTEM-WIDE BEHAVIOR: ; ; BIT 0 = 0 FOR REMOTE LINES, DON'T HANGUP IMMEDIATELY ON CARRIER LOSS ; 1 FOR REMOTE LINES, HANGUP IMMEDIATELY ON CARRIER LOSS ; BIT 1 = 0 FOR REMOTE LINES, DON'T ENABLE DTR UNTIL RING IS SEEN ; 1 FOR REMOTE LINES, ENABLE DTR BEFORE RING IS SEEN ; ; BIT 2 = 0 WHEN TYPEAHEAD BUFFER OPTION FOR SLAVED TERMINALS IS NOT ENABLED ; 1 WHEN TYPEAHEAD BUFFER OPTION FOR SLAVED TERMINALS IS ENABLED ; ; BIT 3 = 0 WHEN TERMINAL ATTRIBUTES SHOULD BE RESET WHEN CARRIER IS DETECTED ; = 1 WHEN TERMINAL ATTRIBUTES SHOULD NOT BE RESET ON CARRIER DETECT ; $TTPRM::.WORD 2 ;DEFAULT TERMINAL DRIVER BEHAVIOR ; ; TERMINAL DRIVER DATA BUFFER - NOT DUMPED BY CDA ; .IF DF K$$DAS&T$$COM $DALED::.BLKW 1 ;TERMINAL DRIVER DATA .ENDC ;DF K$$DAS&T$$COM .IF DF T$$ACD $ACDHD::.WORD 0 ;ANCILLARY CONTROLL DRIVER BLOCK LISTHEAD .ENDC ; DF T$$ACD .END